#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int mx = 2e5+5;
ll n, x, y, deg[mx], dp[mx][2];
vector<ll> adj[mx];
void dfs(int cur, int prev) {
ll sm = 0;
vector<ll> ch(2);
for (int nxt: adj[cur]) if(nxt != prev) {
dfs(nxt, cur);
sm += dp[nxt][0];
ch.push_back(dp[nxt][1] - dp[nxt][0]);
}
nth_element(ch.begin(), ch.begin()+1, ch.end());
dp[cur][1] = sm + ch[0];
dp[cur][0] = 1 + sm + ch[0] + ch[1];
}
int main() {
cin >> n >> x >> y;
for (int i=1; i<n; i++) {
int u, v; cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
deg[u]++, deg[v]++;
}
if (x >= y) {
for (int i=1; i<=n; i++) {
if (deg[i] == n-1) {
cout << x + (n-2) * y << "\n";
return 0;
}
}
cout << (n-1) * y << "\n";
return 0;
}
dfs(1, 0);
cout << ((dp[1][0] - 1) * y) + ((n-dp[1][0]) * x) << "\n";
}
1343C - Alternating Subsequence | 1325A - EhAb AnD gCd |
746A - Compote | 318A - Even Odds |
550B - Preparing Olympiad | 939B - Hamster Farm |
732A - Buy a Shovel | 1220C - Substring Game in the Lesson |
452A - Eevee | 1647B - Madoka and the Elegant Gift |
1408A - Circle Coloring | 766B - Mahmoud and a Triangle |
1618C - Paint the Array | 469A - I Wanna Be the Guy |
1294A - Collecting Coins | 1227A - Math Problem |
349A - Cinema Line | 47A - Triangular numbers |
1516B - AGAGA XOOORRR | 1515A - Phoenix and Gold |
1515B - Phoenix and Puzzle | 155A - I_love_username |
49A - Sleuth | 1541A - Pretty Permutations |
1632C - Strange Test | 673A - Bear and Game |
276A - Lunch Rush | 1205A - Almost Equal |
1020B - Badge | 1353A - Most Unstable Array |